# -*- coding: utf-8 -*-
from basehandler import BaseHandler
from modelos.usuario import Usuario

'''
Este perfil visualiza y permite comentar los polvos
'''

class PerfilHandler(BaseHandler):
    def get(self, usuario):
        self.inicio()
        u = Usuario.buscar_por_nombre(usuario)
        if u:
            p = Polvo.all().filter('autor =', u).run()
        else:
            self.redirect('/aviso/17')
        self.d['titulo'] = 'Polvos de %s' % ()
        u = Usuario.buscar_por_nombre(self.d.get('b_user_name'))
            self.d['p_sexo'] = u.sexo
            self.d['p_orientacion'] = u.orientacion 
            self.d['p_desde'] = u.desde
            self.d['p_enviar_mails'] = u.enviar_mails
            self.d['p_recibir_anonimos'] = u.recibir_anonimos
            self.d['p_lista_ignorados'] = u.lista_ignorados
            self.d['p_polvos_enviados'] = u.polvos_enviados
            self.d['p_mensajes_enviados'] = u.mensajes_enviados
            self.d['p_comentarios_enviados'] = u.comentarios_enviados
        self.response.write(self.render('perfil.html', **self.d))
    
    def post(self):
        self.inicio()
        if self.esta_logueado():
            p = self.request.get('pass_actual')
            p1 = self.request.get('pass_nueva')
            p2 = self.request.get('pass_confir')
            sexo = self.request.get('sexo')
            preferencias = self.request.get('orientacion')
            avatar = self.request.POST['nuevo_avatar']#get('nuevo_avatar')
            anonimos = self.request.get('anonimos')
            bloquear = self.request.get('usuario_bloquear')
            readmitir = self.request.get('usuario_readmitir')
            if p and p1 and p2:
                self.cambio_pass(p, p1, p2)
            if sexo and preferencias and anonimos:
                self.cambio_pref(sexo, preferencias, anonimos)
            if avatar:
                self.cambio_avatar(avatar)
            if bloquear:
                self.bloquear(bloquear)
            if readmitir:
                self.readmitir(readmitir)
            self.d['titulo'] = 'Perfil de %s' % (self.d.get('b_user_name'))
            u = Usuario.buscar_por_nombre(self.d.get('b_user_name'))
            self.d['p_sexo'] = u.sexo
            self.d['p_orientacion'] = u.orientacion 
            self.d['p_desde'] = u.desde
            self.d['p_enviar_mails'] = u.enviar_mails
            self.d['p_recibir_anonimos'] = u.recibir_anonimos
            self.d['p_lista_ignorados'] = u.lista_ignorados
            self.d['p_polvos_enviados'] = u.polvos_enviados
            self.d['p_mensajes_enviados'] = u.mensajes_enviados
            self.d['p_comentarios_enviados'] = u.comentarios_enviados
        self.response.write(self.render('perfil.html', **self.d))
                    
    def cambio_pass(self, p, p1, p2):
        #Comprobar que la contraseña sea correcta y que p1 y p2 sean iguales
        u = Usuario.buscar_por_nombre(self.d.get('b_user_name'))
        if u and (p1 == p2):
            u.cambiar_password(p, p1)
        else:
            self.d['perfil_error_pass'] = 'Error cambiando la contraseña'
                        
    
    def cambio_pref(self, sexo, preferencias, anonimos):
        u = Usuario.buscar_por_nombre(self.d.get('b_user_name'))
        if u:
            u.sexo = self.string_to_int(sexo, 0, 2)
            u.orientacion = self.string_to_int(preferencias, 0, 5) 
            if anonimos:
                u.recibir_anonimos = True
            else:
                u.recibir_anonimos = False
            u.put()
    
    def cambio_avatar(self, avatar):
        u = Usuario.buscar_por_nombre(self.d.get('b_user_name'))
        if u:
            u.avatar = avatar.value
            u.put()
    
    def bloquear(self, bloquear):
        u = Usuario.buscar_por_nombre(self.d.get('b_user_name'))
        u_b = Usuario.buscar_por_nombre(bloquear)
        if u and u_b:
            if u.lista_ignorados.count(bloquear) > 0:
                u.lista_ingorados.append(bloquear)
                u.put()
    
    def readmitir(self, readmitir):
        u = Usuario.buscar_por_nombre(self.d.get('b_user_name'))
        if u:
            for _ in range(u.lista_ingorados.count(readmitir)):
                u.lista_ingnorados.remove(readmitir)
            u.put()
